#!/bin/bash

#########################################################################################
# Script de instalación Golden Star N|N                                                 #
# - Descarga de librerías                                                               #
# - Instalación de librerías                                                            #
# - Compilación de aplicaciones                                                         #
#########################################################################################

echo "Instalación de GoldenStarN|N"

#########################
# Descarga de librerías #
#########################

echo "1) Descarga de librerías"

if [ ! -d librerias ]; then
	mkdir librerias
fi

cd librerias

echo "1.1) Descarga de JsonCPP"

echo "Instalando scons, aguarde por favor..."
sudo apt-get install scons
if [ ! -d jsoncpp-src-0.5.0 ]; then
	if [ ! -f jsoncpp-src-0.5.0.tar.gz ]; then
	 echo "Descargando 'jsoncpp', aguarde por favor..."
	 wget http://ufpr.dl.sourceforge.net/project/jsoncpp/jsoncpp/0.5.0/jsoncpp-src-0.5.0.tar.gz >>/dev/null
	fi 
	echo "Descomprimiendo 'jsoncpp-src-0.5.0.tar.gz', aguarde por favor..."
	tar -xvzf jsoncpp-src-0.5.0.tar.gz >>/dev/null
fi

echo "1.2) Descarga de LibSDL"
if [ ! -d SDL2-2.0.1 ]; then
	if [ ! -f SDL2-2.0.1.zip ]; then
	 echo "Descargando 'SDL2', aguarde por favor..."
         wget http://libsdl.org/release/SDL2-2.0.1.zip >>/dev/null
	fi
	echo "Descomprimiendo 'SDL2-2.0.1.zip', aguarde por favor..."
	unzip SDL2-2.0.1.zip >>/dev/null
fi

echo "1.3) Descarga de LibSDL Mixer"
if [ ! -d SDL2_mixer-2.0.0 ]; then
	if [ ! -f SDL2_mixer-2.0.0.zip ]; then
	 echo "Descargando 'SDL2_mixer', aguarde por favor..."
         wget http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.0.zip >>/dev/null
	fi
	echo "Descomprimiendo 'SDL2_mixer-2.0.0.zip', aguarde por favor..."
	unzip SDL2_mixer-2.0.0.zip >>/dev/null
fi

echo "1.4) Descarga de Cryptopp"
if [ ! -d cryptopp ]; then
  echo "Descargando 'cryptopp', aguarde por favor..."
  svn checkout https://svn.code.sf.net/p/cryptopp/code/trunk/c5 cryptopp >>/dev/null
fi

############################
# Instalación de librerías #
############################

echo "2) Instalación de librerías"

echo "2.1) Instalación de JsonCPP"
# scons compila las librerias
cd jsoncpp-src-0.5.0
scons platform=linux-gcc >>/dev/null

# se deben copiar manualmente las librerias a las carpetas del sistema.
folder_lib="/usr/lib/jsoncpp"
folder_include="/usr/include/jsoncpp"
if [ ! -d ${folder_lib} ];then
 echo "Creando carpeta ${folder_lib}..."
 sudo mkdir ${folder_lib}
fi

find libs -name *.so -exec sudo cp {} ${folder_lib}\libjsoncpp.so \;
find libs -name *.a -exec sudo cp {} ${folder_lib}\libjsoncpp.a \;

if [ ! -d ${folder_include} ];then
 sudo mkdir ${folder_include}
fi

# se copian los archivos .h a la carpeta de sistema.
sudo cp -rf include/json ${folder_include} 

cd ..

echo "2.2) Instalación de LibSDL"

cd SDL2-2.0.1
./configure >>/dev/null
make >>/dev/null
sudo make install >>/dev/null
cd ..

echo "2.3) Instalación de LibSDL Mixer"

cd SDL2_mixer-2.0.0
./configure >>/dev/null
make >>/dev/null
sudo make install >>/dev/null
cd ..

echo "2.4) Cryptopp"

cd cryptopp
make >>/dev/null
sudo make install >>/dev/null
cd ..

###################################
# Compilación de las aplicaciones #
###################################

echo "3) Compilación de aplicaciones"

echo "3.1) Compilación de cliente"

cd cliente
make clean
make

echo "3.2) Compilación de editor"

cd ../editor
make clean
make

echo "3.3) Compilación de servidor"

cd ../servidor
make clean
make
